Products | Support | Email a link to this topic. | Send comments on this topic. | Back to Introduction - All Topics | Help Version 19.0.6.22
|
Leadtools.Barcode Namespace > BarcodeReader Class > ReadBarcode Method : ReadBarcode(RasterImage,LogicalRectangle,BarcodeSymbology[],BarcodeReadOptions[]) Method |
public BarcodeData ReadBarcode( RasterImage image, LogicalRectangle searchBounds, BarcodeSymbology[] symbologies, BarcodeReadOptions[] options )
'Declaration
Public Overloads Function ReadBarcode( _ ByVal image As RasterImage, _ ByVal searchBounds As LogicalRectangle, _ ByVal symbologies() As BarcodeSymbology, _ ByVal options() As BarcodeReadOptions _ ) As BarcodeData
'Usage
Dim instance As BarcodeReader Dim image As RasterImage Dim searchBounds As LogicalRectangle Dim symbologies() As BarcodeSymbology Dim options() As BarcodeReadOptions Dim value As BarcodeData value = instance.ReadBarcode(image, searchBounds, symbologies, options)
public BarcodeData ReadBarcode( RasterImage image, LogicalRectangle searchBounds, BarcodeSymbology[] symbologies, BarcodeReadOptions[] options )
- (nullable LTBarcodeData *)readBarcode:(LTRasterImage *)image searchBounds:(LeadRect)searchBounds symbologies:(nullable NSArray<NSNumber *> *)symbologies options:(nullable NSArray<LTBarcodeReadOptions *> *)options error:(NSError **)error
public BarcodeData readBarcode(
RasterImage image,
LeadRect searchBounds,
BarcodeSymbology[] symbologies,
BarcodeReadOptions[] options
)
function Leadtools.Barcode.BarcodeReader.ReadBarcode(RasterImage,LogicalRectangle,BarcodeSymbology[],BarcodeReadOptions[])( image , searchBounds , symbologies , options )
public: BarcodeData^ ReadBarcode( RasterImage^ image, LogicalRectangle searchBounds, array<BarcodeSymbology>^ symbologies, array<BarcodeReadOptions^>^ options )
For more information on barcode reading, refer to BarcodeReader.
Use this method if you want to read a single barcode from a known group. For example, to read a barcode that can be of any UPC type, pass an array of BarcodeSymbology.UPCA and BarcodeSymbology.UPCE.
LEADTOOLS barcode read engine is optimized for speed and can search for multiple similar symbologies at the same time. This method simply returns the first barcode that is detected correctly using the symbologies and current options.
The ReadSymbology event will occur before and after attempting to read any symbology. The read options being used whether the default or specified will be set in the BarcodeReadSymbologyEventArgs.Options property of the event data.
If symbologies is null (Nothing in Visual Basic), then this method will use all the currently available symbologies. If this parameter contains an empty array, then no barcode will be detected and null (Nothing in Visual Basic) will be returned.
The BarcodeReader provides the following barcode read methods:
Method | Description |
---|---|
ReadBarcode(RasterImage image, LogicalRectangle searchBounds, BarcodeSymbology symbology) and ReadBarcode(RasterImage image, LogicalRectangle searchBounds, BarcodeSymbology symbology, BarcodeReadOptions options) |
Read one barcode from an image with specified symbology and default or specific options. Use these methods if you want to read a single barcode from the image, for example, a QR symbol by specifying BarcodeSymbology.QR or if you want to read any barcode found regardless of its type by using BarcodeSymbology.Unknown. |
ReadBarcode(RasterImage image, LogicalRectangle searchBounds, BarcodeSymbology[] symbologies) and ReadBarcode(RasterImage image, LogicalRectangle searchBounds, BarcodeSymbology[] symbologies, BarcodeReadOptions[] options) |
Read one barcode from an image with a symbology from a specified group and default or specific options. Use these methods if you want to read a single barcode from a known group. For example, to read a barcode that can be of any UPC type, pass an array of BarcodeSymbology.UPCA and BarcodeSymbology.UPCE. |
ReadBarcodes(RasterImage image, LogicalRectangle searchBounds, int maximumBarcodes, BarcodeSymbology[] symbologies) and ReadBarcodes(RasterImage image, LogicalRectangle searchBounds, int maximumBarcodes, BarcodeSymbology[] symbologies, BarcodeReadOptions[] options) |
Read multiple barcodes from an image with symbologies from a specified group and default or specific options. Use these methods if you want to read multiple barcodes of the same or multiple symbologies. |
This example shows how to use this method to read any UPC barcode used to identify products from a rotated image.
Imports Leadtools Imports Leadtools.Codecs Imports Leadtools.Forms Imports Leadtools.Barcode Imports Leadtools.ImageProcessing Public Sub BarcodeReader_ReadBarcodeExample4() Dim imageFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Barcode1.tif") ' Create a Barcode engine Dim engine As New BarcodeEngine() ' Get the Barcode reader instance Dim reader As BarcodeReader = engine.Reader Using codecs As New RasterCodecs() Using image As RasterImage = codecs.Load(imageFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1) ' Rotate the image by 90, so default option of reading horizonal barcodes will not work Console.WriteLine("Rotating the image by 90 degrees") Dim rotate As New RotateCommand(90 * 100, RotateCommandFlags.Resize, RasterColor.FromKnownColor(RasterKnownColor.White)) rotate.Run(image) ' In the US, UPC barcodes are used to identity products. So, create an array of UPC symbologies Dim upcSymbologies() As BarcodeSymbology = _ { _ BarcodeSymbology.UPCA, _ BarcodeSymbology.UPCE _ } ' Read the first UPC barcode from the image using default options Console.WriteLine("Reading barcodes using default options") Dim barcode As BarcodeData = reader.ReadBarcode(image, LogicalRectangle.Empty, upcSymbologies, Nothing) ' Show its location and data if found ' This will print out "Not found" If Not IsNothing(barcode) Then Console.WriteLine("Found a {0} barcode at {1}, data:\n{2}", barcode.Symbology, barcode.Bounds, barcode.Value) Else Console.WriteLine("Not found") End If ' Now get the options we used previously, and change the 1D linear barcode read options ' to search for barcodes in both horizontal and vertical directions ' Note: Same options are used for UPCA and UPCE, so we only need one options class Dim oneDReadOptions As OneDBarcodeReadOptions = DirectCast(reader.GetDefaultOptions(BarcodeSymbology.UPCA), OneDBarcodeReadOptions) ' Change the read direction oneDReadOptions.SearchDirection = BarcodeSearchDirection.HorizontalAndVertical ' Try again using our options Console.WriteLine("Reading barcodes using our options") barcode = reader.ReadBarcode(image, LogicalRectangle.Empty, upcSymbologies, New BarcodeReadOptions() {oneDReadOptions}) ' Show its location and data if found ' This will find the barcode and print its information now If Not IsNothing(barcode) Then Console.WriteLine("Found a {0} barcode at {1}, data:\n{2}", barcode.Symbology, barcode.Bounds, barcode.Value) Else Console.WriteLine("Not found") End If End Using End Using End Sub Public NotInheritable Class LEAD_VARS Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" End Class
using Leadtools; using Leadtools.Codecs; using Leadtools.Forms; using Leadtools.Barcode; using Leadtools.ImageProcessing; public void BarcodeReader_ReadBarcodeExample4() { string imageFileName = Path.Combine(LEAD_VARS.ImagesDir, "Barcode1.tif"); // Create a Barcode engine BarcodeEngine engine = new BarcodeEngine(); // Get the Barcode reader instance BarcodeReader reader = engine.Reader; using(RasterCodecs codecs = new RasterCodecs()) { using(RasterImage image = codecs.Load(imageFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1)) { // Rotate the image by 90, so default option of reading horizonal barcodes will not work Console.WriteLine("Rotating the image by 90 degrees"); RotateCommand rotate = new RotateCommand(90 * 100, RotateCommandFlags.Resize, RasterColor.FromKnownColor(RasterKnownColor.White)); rotate.Run(image); // In the US, UPC barcodes are used to identity products. So, create an array of UPC symbologies BarcodeSymbology[] upcSymbologies = { BarcodeSymbology.UPCA, BarcodeSymbology.UPCE }; // Read the first UPC barcode from the image using default options Console.WriteLine("Reading barcodes using default options"); BarcodeData barcode = reader.ReadBarcode(image, LogicalRectangle.Empty, upcSymbologies, null); // Show its location and data if found // This will print out "Not found" if(barcode != null) { Console.WriteLine("Found a {0} barcode at {1}, data:\n{2}", barcode.Symbology, barcode.Bounds, barcode.Value); } else { Console.WriteLine("Not found"); } // Now get the options we used previously, and change the 1D linear barcode read options // to search for barcodes in both horizontal and vertical directions // Note: Same options are used for UPCA and UPCE, so we only need one options class OneDBarcodeReadOptions oneDReadOptions = reader.GetDefaultOptions(BarcodeSymbology.UPCA) as OneDBarcodeReadOptions; // Change the read direction oneDReadOptions.SearchDirection = BarcodeSearchDirection.HorizontalAndVertical; // Try again using our options Console.WriteLine("Reading barcodes using our options"); barcode = reader.ReadBarcode(image, LogicalRectangle.Empty, upcSymbologies, new BarcodeReadOptions[] { oneDReadOptions }); // Show its location and data if found // This will find the barcode and print its information now if(barcode != null) { Console.WriteLine("Found a {0} barcode at {1}, data:\n{2}", barcode.Symbology, barcode.Bounds, barcode.Value); } else { Console.WriteLine("Not found"); } } } } static class LEAD_VARS { public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; }
using Leadtools; using Leadtools.Codecs; using Leadtools.Forms; using Leadtools.Barcode; using Leadtools.ImageProcessing; using Leadtools.Examples; public void BarcodeReader_ReadBarcodeExample4(RasterImage image) { // Create a Barcode engine BarcodeEngine engine = new BarcodeEngine(); // Get the Barcode reader instance BarcodeReader reader = engine.Reader; RasterCodecs codecs = new RasterCodecs(); // Rotate the image by 90, so default option of reading horizonal barcodes will not work Console.WriteLine("Rotating the image by 90 degrees"); RotateCommand rotate = new RotateCommand(90 * 100, RotateCommandFlags.Resize, RasterColor.FromKnownColor(RasterKnownColor.White)); rotate.Run(image); // In the US, UPC barcodes are used to identity products. So, create an array of UPC symbologies BarcodeSymbology[] upcSymbologies = { BarcodeSymbology.UPCA, BarcodeSymbology.UPCE }; // Read the first UPC barcode from the image using default options Console.WriteLine("Reading barcodes using default options"); BarcodeData barcode = reader.ReadBarcode(image, LogicalRectangle.Empty, upcSymbologies, null); // Show its location and data if found // This will print out "Not found" if(barcode != null) { Console.WriteLine("Found a {0} barcode at {1}, data:\n{2}", barcode.Symbology, barcode.Bounds, barcode.Value); } else { Console.WriteLine("Not found"); } // Now get the options we used previously, and change the 1D linear barcode read options // to search for barcodes in both horizontal and vertical directions // Note: Same options are used for UPCA and UPCE, so we only need one options class OneDBarcodeReadOptions oneDReadOptions = reader.GetDefaultOptions(BarcodeSymbology.UPCA) as OneDBarcodeReadOptions; // Change the read direction oneDReadOptions.SearchDirection = BarcodeSearchDirection.HorizontalAndVertical; // Try again using our options Console.WriteLine("Reading barcodes using our options"); barcode = reader.ReadBarcode(image, LogicalRectangle.Empty, upcSymbologies, new BarcodeReadOptions[] { oneDReadOptions }); // Show its location and data if found // This will find the barcode and print its information now if(barcode != null) { Console.WriteLine("Found a {0} barcode at {1}, data:\n{2}", barcode.Symbology, barcode.Bounds, barcode.Value); } else { Console.WriteLine("Not found"); } }
Imports Leadtools Imports Leadtools.Codecs Imports Leadtools.Forms Imports Leadtools.Barcode Imports Leadtools.ImageProcessing Imports Leadtools.ImageProcessing.Color Public Sub BarcodeReader_ReadBarcodeExample4(ByVal image As RasterImage) ' Create a Barcode engine Dim engine As BarcodeEngine = New BarcodeEngine() ' Get the Barcode reader instance Dim reader As BarcodeReader = engine.Reader Dim codecs As RasterCodecs = New RasterCodecs() ' Rotate the image by 90, so default option of reading horizonal barcodes will not work Console.WriteLine("Rotating the image by 90 degrees") Dim rotate As RotateCommand = New RotateCommand(90 * 100, RotateCommandFlags.Resize, RasterColor.FromKnownColor(RasterKnownColor.White)) rotate.Run(image) ' In the US, UPC barcodes are used to identity products. So, create an array of UPC symbologies Dim upcSymbologies As BarcodeSymbology() = {BarcodeSymbology.UPCA, BarcodeSymbology.UPCE} ' Read the first UPC barcode from the image using default options Console.WriteLine("Reading barcodes using default options") Dim barcode As BarcodeData = reader.ReadBarcode(image, LogicalRectangle.Empty, upcSymbologies, Nothing) ' Show its location and data if found ' This will print out "Not found" If Not barcode Is Nothing Then Console.WriteLine("Found a {0} barcode at {1}, data:" & Constants.vbLf & "{2}", barcode.Symbology, barcode.Bounds, barcode.Value) Else Console.WriteLine("Not found") End If ' Now get the options we used previously, and change the 1D linear barcode read options ' to search for barcodes in both horizontal and vertical directions ' Note: Same options are used for UPCA and UPCE, so we only need one options class Dim oneDReadOptions As OneDBarcodeReadOptions = TryCast(reader.GetDefaultOptions(BarcodeSymbology.UPCA), OneDBarcodeReadOptions) ' Change the read direction oneDReadOptions.SearchDirection = BarcodeSearchDirection.HorizontalAndVertical ' Try again using our options Console.WriteLine("Reading barcodes using our options") barcode = reader.ReadBarcode(image, LogicalRectangle.Empty, upcSymbologies, New BarcodeReadOptions() {oneDReadOptions}) ' Show its location and data if found ' This will find the barcode and print its information now If Not barcode Is Nothing Then Console.WriteLine("Found a {0} barcode at {1}, data:" & Constants.vbLf & "{2}", barcode.Symbology, barcode.Bounds, barcode.Value) Else Console.WriteLine("Not found") End If End Sub
BarcodeReader Class
BarcodeReader Members
Overload List
ReadBarcode(RasterImage image, LogicalRectangle searchBounds, BarcodeSymbology symbology)
ReadBarcode(RasterImage image, LogicalRectangle searchBounds, BarcodeSymbology symbology, BarcodeReadOptions options)
ReadBarcode(RasterImage image, LogicalRectangle searchBounds, BarcodeSymbology[] symbologies)
ReadBarcodes(RasterImage image, LogicalRectangle searchBounds, int maximumBarcodes, BarcodeSymbology[] symbologies)
ReadBarcodes(RasterImage image, LogicalRectangle searchBounds, int maximumBarcodes, BarcodeSymbology[] symbologies, BarcodeReadOptions[] options)
Programming with LEADTOOLS Barcode
Supported Barcode Symbologies
Unlocking Barcode Support
Reading Barcodes Tutorial